package web.suzy.oj.pojo.vo;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * YangSuzy 软件工作室
 * 类名: UserHomeVO
 * 描述: 用户主页数据视图对象
 * 功能: VO (View Object)用于表示一个与前端进行交互的视图对象
 *
 * @author YangSuzy
 * Date: 2022/11/23 13:23
 */
@ApiModel(value = "用户主页的数据格式类UserHomeVO")
@Data
public class UserHomeVO {
    @ApiModelProperty(value = "用户id")
    private String uid;

    @ApiModelProperty(value = "用户名")
    private String username;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "年级")
    private String grade;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "专业")
    private String course;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "班级")
    private String classes;

    @ApiModelProperty(value = "个性签名")
    private String signature;

    @ApiModelProperty(value = "昵称")
    private String nickname;

    @ApiModelProperty(value = "gender")
    private String gender;

    @ApiModelProperty(value = "头像地址")
    private String avatar;

    @ApiModelProperty(value = "总提交数")
    private Integer total;

    @ApiModelProperty(value = "OI得分列表")
    private List<Integer> scoreList;

    @ApiModelProperty(value = "已解决题目列表")
    private List<String> solvedList;

    @ApiModelProperty(value = "难度=>[P1000,P1001]")
    private Map<Integer, List<UserHomeProblemVO>> solvedGroupByDifficulty;

    @ApiModelProperty(value = "最近上线时间")
    private Date recentLoginTime;
}
